WebAssembly WASI Preview 2์ ๋ฐ์ ๊ณผ ์ํฅ๋ ฅ์ ํ์ํด ๋ณด์ธ์. ์ด ํฅ์๋ ์์คํ ์ธํฐํ์ด์ค๊ฐ ์ด๋ป๊ฒ ํฌ๋ก์ค ํ๋ซํผ ๊ฐ๋ฐ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ด์์ฑ์ ํ์ ํ๊ณ ์๋์ง ์์๋ณด์ธ์.
WebAssembly WASI Preview 2: ํฅ์๋ ์์คํ ์ธํฐํ์ด์ค ์ฌ์ธต ๋ถ์
WebAssembly(Wasm)๋ ์๋๋ฐ์ค ํ๊ฒฝ์์ ๋ค์ดํฐ๋ธ์ ๊ฐ๊น์ด ์ฑ๋ฅ์ ์ฝ์ํ๋ฉฐ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ํต์ฌ ๊ธฐ์ ๋ก ๋ถ์ํ์ต๋๋ค. ์ด๊ธฐ์๋ ์ฃผ๋ก ์น ๋ธ๋ผ์ฐ์ ์ ์ค์ ์ ๋์์ง๋ง, ๋ธ๋ผ์ฐ์ ์ธ๋ถ์์ ์ด์ ๊ฐ๋ฅํ๊ณ ์์ ํ ๋ฐํ์์ ๋ํ ํ์์ฑ์ผ๋ก ์ธํด WebAssembly ์์คํ ์ธํฐํ์ด์ค(WASI)๊ฐ ํ์ํ์ต๋๋ค. WASI๋ Wasm ๋ชจ๋์ด ๊ธฐ๋ณธ ์ด์ ์ฒด์ ์ ์ํธ ์์ฉํ ์ ์๋ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ๋ค์ํ ํ๋ซํผ์์ ์คํ๋ ์ ์๋๋ก ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. WASI Preview 2๋ ์ด ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ์์ด ์ค์ํ ์ง์ ์ ๋ํ๋ ๋๋ค. ์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋์์๋ ๊ฐ๋ฐ์์ ๋ ๋์ ๊ธฐ์ ํ๊ฒฝ์ ๋ํ WASI Preview 2์ ๊ฐ์ ์ฌํญ๊ณผ ์์ฌ์ ์ ์ดํด๋ด ๋๋ค.
WASI๋ ๋ฌด์์ธ๊ฐ?
WebAssembly ์์คํ ์ธํฐํ์ด์ค(WASI)๋ WebAssembly๋ฅผ ์ํ ๋ชจ๋์ ์์คํ ์ธํฐํ์ด์ค์ ๋๋ค. WebAssembly ๋ชจ๋์ด ํ์ผ, ๋คํธ์ํฌ ์์ผ, ์๊ณ์ ๊ฐ์ ์ด์ ์ฒด์ ๋ฆฌ์์ค์ ์์ ํ๊ณ ์ด์ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๊ธฐ์กด ์์คํ ํธ์ถ๊ณผ ๋ฌ๋ฆฌ WASI๋ ์ญ๋ ๊ธฐ๋ฐ ๋ณด์(capabilities-based security)์ ์ค์ ์ ๋ก๋๋ค. ์ฆ, Wasm ๋ชจ๋์ ๋ช ์์ ์ผ๋ก ์ฌ์ฉ ๊ถํ์ด ๋ถ์ฌ๋ ๋ฆฌ์์ค์๋ง ์ ๊ทผํ ์ ์์ต๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ๊ธฐ์กด ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋นํด ๋ณด์์ ๊ทน์ ์ผ๋ก ํฅ์์ํต๋๋ค. WASI ์ ํ๋ฆฌ์ผ์ด์ ์ ์์คํ ์ ์ด๋ค ๋ฆฌ์์ค์๋ ๊ทธ๋ฅ ์ ๊ทผํ ์ ์์ผ๋ฉฐ, ๊ทธ๋ ๊ฒ ํ ์ ์๋ ์ญ๋์ ๋ช ์์ ์ผ๋ก ๋ถ์ฌ๋ฐ์์ผ ํฉ๋๋ค. ์ด๋ ๊ณต๊ฒฉ ํ๋ฉด์ ์ค์ด๊ณ Wasm ์ฝ๋ ์คํ์ ๋ณด์์ ์ํฅ์ ๋ ์ฝ๊ฒ ์ถ๋ก ํ ์ ์๋๋ก ํฉ๋๋ค.
WASI๊ฐ ์ค์ํ ์ด์
WASI๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์ด์์ฑ์ ๋ํ ์ค์ํ ์๊ตฌ๋ฅผ ํด๊ฒฐํฉ๋๋ค. ์ ํต์ ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ํน์ ์ด์ ์ฒด์ ๋ฐ ์ํคํ ์ฒ์ฉ์ผ๋ก ์ปดํ์ผ๋ฉ๋๋ค. ์ด๋ ํํธํ๋ฅผ ์ผ๊ธฐํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ํ๊ฒฝ ๊ฐ์ ์ฝ๊ฒ ์ด๋ํ๋ ๋ฅ๋ ฅ์ ์ ํํฉ๋๋ค. WASI๋ ๊ธฐ๋ณธ ์ด์ ์ฒด์ ๋ฅผ ์ถ์ํํ๋ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ํด๊ฒฐ์ฑ ์ ์ ์ํฉ๋๋ค. ์ฃผ์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ด์์ฑ: WASI๋ฅผ ์ฌ์ฉํ๋ฉด Wasm ๋ชจ๋์ด ๊ธฐ๋ณธ ์ด์ ์ฒด์ ๋ ์ํคํ ์ฒ์ ๊ด๊ณ์์ด WASI๋ฅผ ์ง์ํ๋ ๋ชจ๋ ํ๋ซํผ์์ ์คํ๋ ์ ์์ต๋๋ค.
- ๋ณด์: WASI์ ์ญ๋ ๊ธฐ๋ฐ ๋ณด์ ๋ชจ๋ธ์ Wasm ๋ชจ๋์ ์์คํ ๋ฆฌ์์ค ์ ๊ทผ์ ์ ํํ์ฌ ๋ณด์ ์ทจ์ฝ์ ์ ์ํ์ ์ค์ ๋๋ค.
- ์ฑ๋ฅ: Wasm์ ๋ค์ดํฐ๋ธ์ ๊ฐ๊น์ด ์ฑ๋ฅ์ ์ ๊ณตํ์ฌ ์ฑ๋ฅ์ด ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํฉ๋๋ค.
- ๋ชจ๋์ฑ: WASI๋ ๋ชจ๋์์ผ๋ก ์ค๊ณ๋์ด ๊ฐ๋ฐ์๊ฐ ์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ํน์ ์์คํ ์ธํฐํ์ด์ค ์งํฉ์ ์ ํํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ด์ ๋๋ถ์ WASI๋ ์๋ฒ๋ฆฌ์ค ์ปดํจํ , ์ฃ์ง ์ปดํจํ , ์๋ฒ ๋๋ ์์คํ ๋ฐ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌํจํ ๊ด๋ฒ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งค๋ ฅ์ ์ธ ๊ธฐ์ ์ด ๋ฉ๋๋ค.
WASI Preview 2 ์๊ฐ
WASI Preview 2๋ ์ด๊ธฐ WASI ์ฌ์(Preview 1)์ ๋ํ ์ค์ํ ์ ๊ทธ๋ ์ด๋์ ๋๋ค. ๋น๋๊ธฐ ์์ ์ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฐํธ๋ I/O ๋ชจ๋ธ, ๋คํธ์ํน์ ๋ํ ํฅ์๋ ์ง์, ๊ฐ์ ๋ ๋ณด์ ๊ธฐ๋ฅ ๋ฑ ๋ช ๊ฐ์ง ์ฃผ์ ๊ฐ์ ์ฌํญ์ ๋์ ํฉ๋๋ค. ์ด๋ฌํ ๊ฐ์ ์ฌํญ์ Preview 1์ ํ๊ณ๋ฅผ ํด๊ฒฐํ๊ณ ๋ ๋ณต์กํ๊ณ ๊ฐ๋ ฅํ WASI ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๊ธธ์ ์ด์ด์ค๋๋ค.
Preview 2์์ ๊ฐ์ฅ ์ฃผ๋ชฉํ ๋งํ ๋ณ๊ฒฝ ์ฌํญ ์ค ํ๋๋ ๋น๋๊ธฐ I/O ๋ชจ๋ธ๋ก์ ์ ํ์ ๋๋ค. Preview 1์์๋ I/O ์์ ์ด ๋๊ธฐ์ ์ด์ด์ ๋ธ๋กํน๊ณผ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ ๋ฐํ ์ ์์์ต๋๋ค. Preview 2๋ ๋น๋๊ธฐ I/O ์์ ์ ๋์ ํ์ฌ Wasm ๋ชจ๋์ด ๋ฉ์ธ ์ค๋ ๋๋ฅผ ์ฐจ๋จํ์ง ์๊ณ I/O ์์ ์ ์ํํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ WASI ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋ต์ฑ๊ณผ ํ์ฅ์ฑ์ ํฌ๊ฒ ํฅ์์ํต๋๋ค.
WASI Preview 2์ ์ฃผ์ ๊ธฐ๋ฅ ๋ฐ ๊ฐ์ ์ฌํญ
๋น๋๊ธฐ I/O (Async I/O)
๋น๋๊ธฐ I/O๋ WASI Preview 2์ ์ค์ํ ๊ฐ์ ์ฌํญ์ ๋๋ค. I/O ์์ ์ด ์๋ฃ๋ ๋๊น์ง ํ๋ก๊ทธ๋จ ์คํ์ ์ฐจ๋จํ๋ ๋๊ธฐ I/O์ ๋ฌ๋ฆฌ, ๋น๋๊ธฐ I/O๋ I/O ์์ ์ด ์งํ๋๋ ๋์ ํ๋ก๊ทธ๋จ์ด ๊ณ์ ์คํ๋๋๋ก ํฉ๋๋ค. I/O ์์ ์ด ์๋ฃ๋๋ฉด ํ๋ก๊ทธ๋จ์ ์๋ฆผ์ด ๊ฐ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ์ฑ๋ฅ ํฅ์: ๋น๋๊ธฐ I/O๋ ๋ธ๋กํน์ ๋ฐฉ์งํ์ฌ ๋ ๋์ ์๋ต์ฑ๊ณผ ์ฒ๋ฆฌ๋์ ์ ๊ณตํฉ๋๋ค.
- ํ์ฅ์ฑ: ๋น๋๊ธฐ I/O๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋ง์ ์์ ๋์ I/O ์์ ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ฆฌ์์ค ํ์ฉ: ๋น๋๊ธฐ I/O๋ ๋ค์ค ์ค๋ ๋์ ํ์์ฑ์ ์ค์ฌ ๋ฆฌ์์ค ํ์ฉ๋๋ฅผ ํฅ์์ํต๋๋ค.
์์: ์ฌ๋ฌ ๊ฐ์ ๋ค์ด์ค๋ ์์ฒญ์ ์ฒ๋ฆฌํด์ผ ํ๋ ์๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ํด ๋ณด์ธ์. ๋๊ธฐ I/O๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ ์์ฒญ์ ๋คํธ์ํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋์ ์๋ฒ๋ฅผ ์ฐจ๋จํฉ๋๋ค. ๋น๋๊ธฐ I/O๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ๋ ์ฝ๊ธฐ ์์ ์ ์์ํ๊ณ ๋ฐ์ดํฐ๊ฐ ์ ์ก๋๋ ๋์ ๋ค๋ฅธ ์์ฒญ์ ๊ณ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋์ฐฉํ๋ฉด ์๋ฒ์ ์๋ฆผ์ด ๊ฐ๊ณ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
ํฅ์๋ ๋คํธ์ํน ์ง์
WASI Preview 2๋ ๋คํธ์ํน์ ๋ํ ๊ฐ์ ๋ ์ง์์ ๋์ ํ์ฌ WASI๋ก ๋คํธ์ํฌ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ฒ ๊ตฌ์ถํ ์ ์๋๋ก ํฉ๋๋ค. ๋คํธ์ํน API๋ TCP ๋ฐ UDP ์์ผ๋ฟ๋ง ์๋๋ผ DNS ํ์ธ๋ ์ง์ํฉ๋๋ค.
์ฃผ์ ๊ฐ์ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋น๋๊ธฐ ๋คํธ์ํน ์์ : ์ด์ ๋คํธ์ํน ์์ ์ด ๋น๋๊ธฐ์ ์ด์ด์ ๋ ผ๋ธ๋กํน ๋คํธ์ํฌ ํต์ ์ด ๊ฐ๋ฅํฉ๋๋ค.
- ๊ฐ์ ๋ ์ค๋ฅ ์ฒ๋ฆฌ: ๋คํธ์ํน API๋ ๋ ์์ธํ ์ค๋ฅ ์ ๋ณด๋ฅผ ์ ๊ณตํ์ฌ ๋คํธ์ํฌ ๋ฌธ์ ๋ฅผ ์ง๋จํ๊ณ ํด๊ฒฐํ๊ธฐ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
- ๋ณด์ ๊ฐํ: ๋คํธ์ํน API๋ ์ฃผ์ ํํฐ๋ง ๋ฐ ์ ๊ทผ ์ ์ด์ ๊ฐ์ ๋ณด์ ๊ธฐ๋ฅ์ ํตํฉํฉ๋๋ค.
์์: WASI๋ก ๊ตฌ์ถ๋ ๋ถ์ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ์๊ฐํด ๋ณด์ธ์. ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ธ๋๋ ๋คํธ์ํน API๋ฅผ ์ฌ์ฉํ์ฌ ํด๋ฌ์คํฐ์ ๋ค๋ฅธ ๋ ธ๋์ ํต์ ํ ์ ์์ต๋๋ค. ๋น๋๊ธฐ ๋คํธ์ํน ์์ ์ ํตํด ๋ ธ๋๋ ๋ธ๋กํน ์์ด ๋ง์ ์์ ๋์ ์ฐ๊ฒฐ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
WASI-NN: ์ ๊ฒฝ๋ง ์ถ๋ก
WASI-NN์ WebAssembly ๋ชจ๋์ด ์ ๊ฒฝ๋ง ์ถ๋ก ์ ์ํํ ์ ์๋๋ก ํ๋ WASI์ ํ์ฅ์ ๋๋ค. ์ฌ์ ํ๋ จ๋ ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ๋ก๋ํ๊ณ ์คํํ๊ธฐ ์ํ ํ์คํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ WASI๋ฅผ ์ง์ํ๋ ๋ชจ๋ ํ๋ซํผ์์ ์คํํ ์ ์๋ AI ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
WASI-NN์ ์ฃผ์ ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ด์์ฑ: WASI-NN์ ์ฌ์ฉํ๋ฉด ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ๋ชจ๋ WASI ํธํ ํ๋ซํผ์์ ์คํํ ์ ์์ต๋๋ค.
- ๋ณด์: WASI์ ๋ณด์ ๋ชจ๋ธ์ ์ ์์ ์ธ ์ ๊ฒฝ๋ง ๋ชจ๋ธ๋ก๋ถํฐ ๊ธฐ๋ณธ ์์คํ ์ ๋ณดํธํฉ๋๋ค.
- ์ฑ๋ฅ: WASI-NN์ ํ๋์จ์ด ๊ฐ์์ ํ์ฉํ์ฌ ์ ๊ฒฝ๋ง ์ถ๋ก ์ ๋ํด ๋ค์ดํฐ๋ธ์ ๊ฐ๊น์ด ์ฑ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
์์: WASI-NN์ผ๋ก ๊ตฌ์ถ๋ ์ด๋ฏธ์ง ์ธ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋ ์์ ์์ด ์ค๋งํธํฐ์์ ์๋ฒ ๋๋ ์์คํ ์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ์ฅ์น์ ๋ฐฐํฌ๋ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ ํ๋ จ๋ ์ด๋ฏธ์ง ์ธ์ ๋ชจ๋ธ์ ๋ก๋ํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ์น ์นด๋ฉ๋ผ๋ก ์บก์ฒํ ์ด๋ฏธ์ง์ ๊ฐ์ฒด๋ฅผ ์๋ณํ ์ ์์ต๋๋ค.
ํฅ์๋ ๋ณด์ ๊ธฐ๋ฅ
๋ณด์์ WASI ์ค๊ณ์ ํต์ฌ ๊ด์ฌ์ฌ์ ๋๋ค. Preview 2๋ Preview 1์ ์ญ๋ ๊ธฐ๋ฐ ๋ณด์ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋ณด์์ ๋์ฑ ๊ฐํํ๊ธฐ ์ํ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํฉ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์ธ๋ถํ๋ ๊ถํ: WASI Preview 2๋ Wasm ๋ชจ๋์ ๋ถ์ฌ๋ ๊ถํ์ ๋ํด ๋ ์ธ๋ถํ๋ ์ ์ด๋ฅผ ํ์ฉํฉ๋๋ค.
- ๋ฆฌ์์ค ์ ํ: WASI๋ Wasm ๋ชจ๋์ ๋ฆฌ์์ค ์ ํ์ ์ค์ ํ์ฌ ๊ณผ๋ํ ๋ฆฌ์์ค ์๋น๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- ์๋๋ฐ์ฑ: WASI๋ Wasm ๋ชจ๋์ ์ํ ์์ ํ ์๋๋ฐ์ค ํ๊ฒฝ์ ์ ๊ณตํ์ฌ ๊ธฐ๋ณธ ์์คํ ์ผ๋ก๋ถํฐ ๊ฒฉ๋ฆฌํฉ๋๋ค.
์์: ํด๋ผ์ฐ๋ ์ปดํจํ ์ ๊ณต์ ์ฒด๋ WASI๋ฅผ ์ฌ์ฉํ์ฌ ์๋๋ฐ์ค ํ๊ฒฝ์์ ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ์ฝ๋๋ฅผ ์์ ํ๊ฒ ์คํํ ์ ์์ต๋๋ค. ์ ๊ณต์ ์ฒด๋ ์ฝ๋์ ๋ฆฌ์์ค ์ ํ์ ์ค์ ํ์ฌ ๊ณผ๋ํ ๋ฆฌ์์ค๋ฅผ ์๋นํ๊ณ ๋ค๋ฅธ ํ ๋ํธ๋ฅผ ๋ฐฉํดํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์ปดํฌ๋ํธ ๋ชจ๋ธ ํตํฉ
WASI Preview 2๋ WebAssembly ์ปดํฌ๋ํธ ๋ชจ๋ธ๊ณผ ์ํํ๊ฒ ํตํฉ๋๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ปดํฌ๋ํธ ๋ชจ๋ธ์ WebAssembly ๋ชจ๋์ ๊ตฌ์ถํ๊ณ ๊ตฌ์ฑํ๊ธฐ ์ํ ๋ชจ๋์ ์์คํ ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ ํฐ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์ฝ๊ฒ ์กฐ๋ฆฝํ ์ ์๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
์ด ํตํฉ์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ์ ์ ๊ณตํฉ๋๋ค:
- ๋ชจ๋์ฑ: ์ปดํฌ๋ํธ ๋ชจ๋ธ์ ๋ชจ๋์ฑ์ ์ด์งํ์ฌ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ฒ ๊ตฌ์ถํ๊ณ ์ ์ง ๊ด๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค.
- ์ฌ์ฌ์ฉ์ฑ: ์ปดํฌ๋ํธ๋ ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฌ์ฉ๋ ์ ์์ด ๊ฐ๋ฐ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ์ค์ผ ์ ์์ต๋๋ค.
- ์ํธ ์ด์ฉ์ฑ: ์ปดํฌ๋ํธ๋ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑ๋๊ณ WebAssembly๋ก ์ปดํ์ผ๋ ์ ์์ด ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ๊ฐ์ ์ํธ ์ด์ฉ์ฑ์ ํ์ฉํฉ๋๋ค.
์์: ์ํํธ์จ์ด ํ์ฌ๋ ๋ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด๋ฌํ ์ปดํฌ๋ํธ๋ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑ๋๊ณ WebAssembly๋ก ์ปดํ์ผ๋ ์ ์์ด ๊ฐ๋ฐ์๊ฐ ๊ฐ ์ปดํฌ๋ํธ์ ๊ฐ์ฅ ์ ํฉํ ์ธ์ด๋ฅผ ์ ํํ ์ ์์ต๋๋ค.
WASI Preview 2์ ์ฌ์ฉ ์ฌ๋ก
WASI Preview 2๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๊ด๋ฒ์ํ ๊ฐ๋ฅ์ฑ์ ์ด์ด์ค๋๋ค. ์ฃผ์ ์ฌ์ฉ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
์๋ฒ๋ฆฌ์ค ์ปดํจํ
WASI๋ ์๋ฒ๋ฆฌ์ค ์ปดํจํ ์ ์ด์์ ์ธ ํ๋ซํผ์ ๋๋ค. ๋ณด์ ๋ฐ ์ด์์ฑ ๊ธฐ๋ฅ ๋๋ถ์ ์๋๋ฐ์ค ํ๊ฒฝ์์ ์ฌ์ฉ์๊ฐ ์ ๊ณตํ ์ฝ๋๋ฅผ ์คํํ๋ ๋ฐ ์ ํฉํฉ๋๋ค. ์๋ฒ๋ฆฌ์ค ํ๋ซํผ์ WASI๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑ๋ ํจ์๋ฅผ ์คํํ๊ณ ๋ค๊ตญ์ด ๋ฐํ์ ํ๊ฒฝ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์์: ํด๋ผ์ฐ๋ ์ ๊ณต์ ์ฒด๋ WASI๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์๊ฐ JavaScript, Python, Rust๋ก ์์ฑ๋ ํจ์๋ฅผ ๋ฐฐํฌํ ์ ์๋ ์๋ฒ๋ฆฌ์ค ํ๋ซํผ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ํจ์๋ ์์ ํ ์๋๋ฐ์ค ํ๊ฒฝ์์ ์คํ๋๋ฉฐ ์ ๊ณต์ ์ฒด๋ ๊ธฐ๋ณธ ์ธํ๋ผ ๊ด๋ฆฌ๋ฅผ ์ฑ ์์ง๋๋ค.
์ฃ์ง ์ปดํจํ
WASI๋ ์ฃ์ง ์ปดํจํ ์๋ ์ ํฉํฉ๋๋ค. ์์ ํํ๋ฆฐํธ์ ๋ฎ์ ์ค๋ฒํค๋ ๋๋ถ์ ๋คํธ์ํฌ ์ฃ์ง์ ์๋ ๋ฆฌ์์ค๊ฐ ์ ํ๋ ์ฅ์น์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐ ์ด์์ ์ ๋๋ค. WASI๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ, ๋ถ์ ๋ฐ ๋จธ์ ๋ฌ๋์ ์ํํ๋ ์ฃ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
์์: ์ ์กฐ ํ์ฌ๋ WASI๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ๋น์ ์ฑ๋ฅ์ ๋ชจ๋ํฐ๋งํ๋ ์ฃ์ง ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฅ๋น์ ์ผ์์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๋จธ์ ๋ฌ๋์ ์ฌ์ฉํ์ฌ ์ด์ ํ์์ ๊ฐ์งํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฅ๋น ๊ทผ์ฒ์ ์์นํ ์ํ ์ปดํจํฐ์์ ์คํ๋์ด ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ง์ฐ ์๊ฐ์ ์ค์ ๋๋ค.
์๋ฒ ๋๋ ์์คํ
WASI๋ ์๋ฒ ๋๋ ์์คํ ์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด์์ฑ ๋๋ถ์ ๊ฐ๋ฐ์๋ ์ฝ๋๋ฅผ ํ ๋ฒ ์์ฑํ๊ณ ๋ค์ํ ์๋ฒ ๋๋ ์ฅ์น์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. WASI์ ๋ณด์ ๊ธฐ๋ฅ์ ์๋ฒ ๋๋ ์์คํ ์ ์ ์ฑ ์ฝ๋๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค.
์์: ๋ก๋ด ํ์ฌ๋ WASI๋ฅผ ์ฌ์ฉํ์ฌ ๋ก๋ด์ฉ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก๋ด์ ์์ง์์ ์ ์ดํ๊ณ , ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ฉฐ, ํ๊ฒฝ๊ณผ ์ํธ ์์ฉํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก๋ด์ ์๋ฒ ๋๋ ์ปดํจํฐ์์ ์คํ๋๋ฉฐ WASI๋ ์์ ํ๊ณ ์ด์ ๊ฐ๋ฅํ ๋ฐํ์ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค.
๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์
WASI๋ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ์๋ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ด์์ฑ ๋๋ถ์ ๊ฐ๋ฐ์๋ ์ฝ๋๋ฅผ ํ ๋ฒ ์์ฑํ๊ณ ๋ค๋ฅธ ์ด์ ์ฒด์ ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. WASI์ ๋ณด์ ๊ธฐ๋ฅ์ ์ฌ์ฉ์์ ์ปดํจํฐ๋ฅผ ์ ์ฑ ์ฝ๋๋ก๋ถํฐ ๋ณดํธํฉ๋๋ค.
์์: ์ํํธ์จ์ด ํ์ฌ๋ WASI๋ฅผ ์ฌ์ฉํ์ฌ ํฌ๋ก์ค ํ๋ซํผ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋จ์ผ ์ธ์ด๋ก ์์ฑ๋๊ณ WebAssembly๋ก ์ปดํ์ผ๋ ์ ์์ผ๋ฉฐ, ์์ ์์ด Windows, macOS ๋ฐ Linux์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. Figma์ ๊ฐ์ ํ์ฌ๋ ์ด๋ฏธ WebAssembly๋ฅผ ์ฌ์ฉํ์ฌ ๊ณ ์ฑ๋ฅ ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ณ ์์ต๋๋ค.
WASI Preview 1์์ Preview 2๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ
WASI Preview 1์์ Preview 2๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ค๋ฉด API๊ฐ ํฌ๊ฒ ์ ๋ฐ์ดํธ๋์๊ธฐ ๋๋ฌธ์ ์ผ๋ถ ์ฝ๋ ๋ณ๊ฒฝ์ด ํ์ํฉ๋๋ค. ๊ฐ์ฅ ์ค์ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ๋น๋๊ธฐ I/O: ๋ชจ๋ I/O ์์ ์ด ์ด์ ๋น๋๊ธฐ์ ์ ๋๋ค. ์๋ก์ด ๋น๋๊ธฐ I/O API๋ฅผ ์ฌ์ฉํ๋๋ก ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
- ๋คํธ์ํน API: ๋คํธ์ํน API๊ฐ ์ฌ์ค๊ณ๋์์ต๋๋ค. ์๋ก์ด ๋คํธ์ํน API๋ฅผ ์ฌ์ฉํ๋๋ก ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
- ์ค๋ฅ ์ฒ๋ฆฌ: ์ค๋ฅ ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์ด ์ ๋ฐ์ดํธ๋์์ต๋๋ค. ์๋ก์ด ์ค๋ฅ ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ๋๋ก ์ฝ๋๋ฅผ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
WASI ์ปค๋ฎค๋ํฐ๋ ๊ฐ๋ฐ์๊ฐ Preview 1์์ Preview 2๋ก ์ฝ๋๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํ๋ ๋ฐ ๋์์ด ๋๋ ๋ฌธ์์ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ง์ด๊ทธ๋ ์ด์ ํ๋ก์ธ์ค๋ฅผ ์์ํ๊ธฐ ์ ์ ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ์ฐธ์กฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
WASI ๊ฐ๋ฐ์ ์ํ ๋๊ตฌ ๋ฐ ๋ฆฌ์์ค
๊ฐ๋ฐ์๊ฐ WASI ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ด ๋๋ ๋ค์ํ ๋๊ตฌ์ ๋ฆฌ์์ค๊ฐ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- WASI SDK: WASI SDK๋ WASI๋ฅผ ์ง์ํ๋ C/C++ ์ฝ๋๋ฅผ WebAssembly๋ก ์ปดํ์ผํ๊ธฐ ์ํ ํด์ฒด์ธ์ ์ ๊ณตํฉ๋๋ค.
- Wasmtime: Wasmtime์ WASI๋ฅผ ์ง์ํ๋ ๋ ๋ฆฝํ WebAssembly ๋ฐํ์์ ๋๋ค.
- Wasmer: Wasmer๋ WASI๋ฅผ ์ง์ํ๋ ๋ ๋ค๋ฅธ WebAssembly ๋ฐํ์์ ๋๋ค.
- WASI ์ปค๋ฎค๋ํฐ: WASI ์ปค๋ฎค๋ํฐ๋ ๊ฐ๋ฐ์๊ฐ WASI๋ฅผ ์์ํ๋ ๋ฐ ๋์์ด ๋๋ ๋ฌธ์, ํํ ๋ฆฌ์ผ ๋ฐ ์์ ๋ฅผ ์ ๊ณตํฉ๋๋ค.
WASI์ ๋ฏธ๋
WASI๋ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋ ๊ธฐ์ ์ ๋๋ค. WASI์ ํฅํ ๋ฒ์ ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ ๋ง์ ๊ธฐ๋ฅ๊ณผ ๊ฐ์ ์ฌํญ์ด ํฌํจ๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค:
- ๊ณ ๊ธ ๋ณด์ ๊ธฐ๋ฅ: ์ ์ ๋ ์ ๊ตํด์ง๋ ๊ณต๊ฒฉ์ผ๋ก๋ถํฐ ๋ณดํธํ๊ธฐ ์ํ ํฅ์๋ ๋ณด์ ๊ธฐ๋ฅ.
- ์ฑ๋ฅ ํฅ์: WASI ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํ ์ถ๊ฐ ์ต์ ํ.
- ์๋ก์ด ์ธ์ด ์ง์: ๋ ๋ง์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ง์ํ์ฌ ๋ ๋์ ๋ฒ์์ ๊ฐ๋ฐ์๊ฐ WASI๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํจ.
- ํ์คํ๋ ์ปดํฌ๋ํธ ๋ชจ๋ธ: WebAssembly ์ปดํฌ๋ํธ ๋ชจ๋ธ๊ณผ์ ์์ ํ ํตํฉ์ ํตํด ๊ณ ๋๋ก ๋ชจ๋ํ๋๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์์ฑ ๊ฐ๋ฅ.
WASI๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋ฏธ๋๋ฅผ ์ํ ํต์ฌ ๊ธฐ์ ์ด ๋ ์ค๋น๊ฐ ๋์ด ์์ผ๋ฉฐ, ๋ชจ๋ ํ๋ซํผ์์ ์คํํ ์ ์๋ ์์ ํ๊ณ ์ด์ ๊ฐ๋ฅํ๋ฉฐ ๊ณ ์ฑ๋ฅ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฑ์ ๊ฐ๋ฅํ๊ฒ ํ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก
WASI Preview 2๋ WebAssembly ์งํ์ ์ค์ํ ๋์ฝ์ ์๋ฏธํ๋ฉฐ, ํฌ๋ก์ค ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ๋ ๊ฐ๋ ฅํ๊ณ ๋ค์ฌ๋ค๋ฅํ ์์คํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋น๋๊ธฐ I/O, ๊ฐ์ ๋ ๋คํธ์ํน ์ง์, ๊ณ ๊ธ ๋ณด์ ์กฐ์น๋ฅผ ํฌํจํ ํฅ์๋ ๊ธฐ๋ฅ์ Preview 1์ ํ๊ณ๋ฅผ ํด๊ฒฐํ๊ณ ๊ฐ๋ฐ์์๊ฒ ์๋ก์ด ๊ฐ๋ฅ์ฑ์ ์ด์ด์ค๋๋ค. WASI๊ฐ ๊ณ์ํด์ ๋ฐ์ ํ๊ณ ์ฑ์ํด์ง์ ๋ฐ๋ผ, ์ํํธ์จ์ด๊ฐ ๊ฐ๋ฐ๋๊ณ ๋ฐฐํฌ๋๋ ๋ฐฉ์์ ํ์ ํ์ฌ ์๋ฒ๋ฆฌ์ค ํ๋ซํผ์์ ์ฃ์ง ์ฅ์น ๋ฐ ๊ทธ ์ด์์ ์ด๋ฅด๊ธฐ๊น์ง ๋ค์ํ ํ๊ฒฝ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ํํ๊ฒ ์คํ๋ ์ ์๋ ๋ฏธ๋๋ฅผ ์ฝ์ํฉ๋๋ค. WASI Preview 2๋ฅผ ์ฑํํ๋ ๊ฒ์ ํ๋ ์ธ๊ณ๋ฅผ ์ํ ์ง์ ์ผ๋ก ์ด์ ๊ฐ๋ฅํ๊ณ ์์ ํ๋ฉฐ ๊ณ ์ฑ๋ฅ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ค๋ ๊ฐ๋ฐ์์๊ฒ ์ ๋ต์ ์ธ ์์ง์์ ๋๋ค.